package com.yst.gateway.monitor.services;


import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.yst.gateway.monitor.common.base.BaseService;
import com.yst.gateway.monitor.models.QzChannelInterface;
import com.yst.gateway.monitor.models.QzChannelInterfaceAddr;
import com.yst.gateway.monitor.models.QzChannelInterfaceAttachment;
import com.yst.gateway.monitor.models.QzChannelInterfaceBcp;
import com.yst.gateway.monitor.models.QzChannelInterfaceSpbanks;
import com.yst.gateway.monitor.models.QzChannelInterfaceSpcards;

/**
 * 前置系统接口管理业务接口类
 * @author sheungxin
 *
 */
public interface QzInterfaceService extends BaseService<QzChannelInterface>{
	
	/**
	 * 添加支持银行信息：银行代码、卡类型及代码
	 * @param paramMap
	 * @return
	 */
	public boolean addSpBank(Map<String, Object> paramMap);
	
	/**
	 * 修改支持银行信息：银行代码、卡类型及代码
	 * @param paramMap
	 * @return
	 */
	public boolean modifySpBank(Map<String, Object> paramMap);
	
	/**
	 * 添加部署服务器信息
	 * @param paramMap
	 * @return
	 */
	public boolean addDeploy(Map<String, Object> paramMap);
	
	/**
	 * 修改部署服务器信息
	 * @param paramMap
	 * @return
	 */
	public boolean modifyDeploy(Map<String, Object> paramMap);
	
	/**
	 * 查询接口支持银行信息
	 * @param interId
	 * @return
	 */
	public List<QzChannelInterfaceSpbanks> getSpBankList(String interId);
	
	/**
	 * 查询接口支持银行对应的卡信息
	 * @param interId
	 * @return
	 */
	public List<QzChannelInterfaceSpcards> getSpCardList(String interId);

	/**
	 * 查询接口支持卡对应的属性信息
	 * @param interId
	 * @return
	 */
	public List<QzChannelInterfaceBcp> getBcpList(String interId);
	
	/**
	 * 查询接口相关银行配置信息
	 * @param interId
	 * @return
	 */
	public Map<String, Object> getSpMap(String interId);
	
	/**
	 * 查询服务器部署信息
	 * @param interId
	 * @return
	 */
	public List<QzChannelInterfaceAddr> getDeployInfo(String interId);
	
	/**
	 * 上传附件信息
	 * @param request
	 * @param response
	 */
	public void fileUpload(QzChannelInterfaceAttachment attachment, HttpServletRequest request, HttpServletResponse response);
	
	/**
	 * 上传附件信息列表
	 * @param id: interface id
	 * @return attachment list
	 */
	public List<QzChannelInterfaceAttachment> getAttchementList(String id);
	
	/**
	 * 删除上传附件
	 * @param id
	 * @return
	 */
	public boolean filedelById(String id);
	
	/**
	 * 校验接口名称重复
	 * @param interName
	 * @return
	 */
	public boolean checkInterName(String interName,String interId);
}
